#ifndef __QUEUE_LINKED_LIST_H
#define __QUEUE_LINKED_LIST_H

#ifdef __cplusplus
 extern "C" {
#endif
//FIFO数据结构
#include <stdio.h>
#include <malloc.h>
typedef int QuDataType;
typedef struct QListNode
{
    struct QListNode* _next;
	QuDataType        _data;
}QueueNode; // 链式结构：表示队列
typedef struct LinkedListQueue
{
	QueueNode* _front;
	QueueNode* _rear;
}LinkedListQueue; // 队列的结构
void QueueInit(LinkedListQueue* q);                   // 初始化队列
void QueuePush(LinkedListQueue* q, QuDataType data);  // 队尾入队列
void QueuePop(LinkedListQueue* q);                    // 队头出队列
QuDataType QueueFront(LinkedListQueue* q);            // 获取队列头部元素
QuDataType QueueBack(LinkedListQueue* q);             // 获取队列队尾元素
int QueueSize(LinkedListQueue* q);                    // 获取队列中有效元素个数
int QueueEmpty(LinkedListQueue* q);                   // 检测队列是否为空，如果为空返回非零结果，如果非空返回0
void QueueDestory(LinkedListQueue* q);                // 销毁队列

#ifdef __cplusplus
}
#endif  
#endif 	/* __QUEUE_LINKED_LIST_H */